﻿/*
 * 过滤器（Filter）
 * 1、授权（Authorization）
 * 2、行为（Action）
 * 3、结果（Result）
 * 4、异常（Exception）
 * 5、资源（Resource）
 * 
 * 步骤：
 * 1、建一个类
 * 2、这个类，需要继承你想实现的过滤器的接口  （I + 上面5个另何的英文 + Filter）
 * 3、继承了接口，就实现这个接口的方法
 * 4、在方法里写你想实现的逻辑
 * 5、注册这个新建类
 * **/



using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;

namespace Max.PH4_2104A.Shopping.API.Config
{
    
    /// <summary>
    /// 自定义异常过滤器
    /// </summary>
    public class MyExceptionFilter : IExceptionFilter
    {
        NLog.Logger _log = NLog.LogManager.GetCurrentClassLogger();
        public void OnException(ExceptionContext context)
        {
            _log.Error(context.Exception.Message);

            //异常的友好提示
            context.Result = new JsonResult(new { 
                Code = 500,
                Message = $"服务器内部错误！错误详情：{context.Exception.Message}"
            });
        }
    }
}
